// OrangeHRM is a comprehensive Human Resource Management (HRM) System that captures
// all the essential functionalities required for any enterprise.
// Copyright (C) 2006 OrangeHRM Inc., http://www.orangehrm.com
//
// OrangeHRM is free software: you can redistribute it and/or modify it under the terms of
// the GNU General Public License as published by the Free Software Foundation, either
// version 3 of the License, or (at your option) any later version.
//
// OrangeHRM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with OrangeHRM.
// If not, see <https://www.gnu.org/licenses/>.

@mixin truncate($rows, $line-height, $background: '') {
  position: relative;
  overflow: hidden;
  max-height: $line-height * $rows;
  line-height: $line-height;
  justify-content: space-between;
  word-break: break-all;

  &:after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: inherit;
    height: $line-height;

    @if $background != '' {
      background: linear-gradient(to right, rgba($background, 0) 0%, rgba($background, 1) 100%);
    }
  }

  // If supports line-clamp then add an ellipsis overflow and hide the gradient
  // This will work in Chrome and Opera, otherwise a gradient will gradually hide the text.

  @supports (-webkit-line-clamp: $rows) {
    display: -webkit-box;
    -webkit-line-clamp: $rows;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;

    &:after {
      display: none;
    }
  }
}
